package com.xy.api.model.dto.order;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@Data
public class PlaceFollowOrderDTO implements Serializable {

    private Long id;

    // 平台：1_amazon,2_海外仓
    private Integer platform;

    // 供货商ID
    private Long vendorId;

    private String vendorName;

    // 下单日期
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+08:00")
    private Date orderTime;

    // PO-P代码
    private String poP;

    // PO-C代码
    private String poC;

    // 提货日期
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+08:00")
    private Date pickupTime;

    // 开船日期
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+08:00")
    private Date shippingTime;

    // 实际入仓日期
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+08:00")
    private Date actualWarehouseEntryTime;

    // 是否含税
    private Integer taxIncluded;

    // 税点
    private BigDecimal taxRate;

    // 预付款日期
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+08:00")
    private Date vendorPrepaymentTime;

    // 货款剩余
    private BigDecimal vendorRemainingPayment;

    // 货款剩余付款日期
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+08:00")
    private Date vendorRemainingPaymentDueTime;

    // Amazon仓库代码
    private String amazonWarehouseCode;

    // 货件编码
    private String shipmentCode;

    // 物流编码
    private String logisticalCode;

    // 发货方式：1_海外仓，2_海运
    private Integer shippingMethod;

    // 物流商ID
    private Long logisticalId;

    private String logisticalName;

    // 物流付款日期
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+08:00")
    private Date logisticalPaymentTime;

    // 物流付款状态：0_未付款,1_已付款
    private Integer logisticalPaymentStatus;

    // 物流价格
    private BigDecimal logisticalPrice;

    // 逆算比例
    private BigDecimal reverseRatio;

    // 报关费
    private BigDecimal customsFee;

    // 内陆运费
    private BigDecimal inlandFreight;

    // 实付税金
    private BigDecimal actualTaxPaied;

    // 实付运费
    private BigDecimal actualFreightPaied;

    // 预计送仓日期
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+08:00")
    private Date estimatedDeliveryWarehouseTime;

    // 实际送仓日期
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+08:00")
    private Date actualDeliveryWarehouseTime;

    // 接收状态：0_未接收，1_已接收
    private Integer receiveStatus;

    // 售价币种同人民币的汇率
    private BigDecimal exchangeRate;

    // 是否一批运走
    private Integer oneBatch;

    // 批次
    private Integer batchNumber;

    // 批次中的第几批
    private Integer batchSecond;

    // 供应商产品类型
    private Long vendorProductTypeId;

    private String vendorProductTypeName;

    // 创建人
    private Long createBy;

    // 更新人
    private Long updateBy;

    // 创建时间
    private Date createTime;

    // 更新时间
    private Date updateTime;

    // 是否删除
    private Integer isDeleted;
}
